/********** 变量提升 **********/

/*
预编译 四部曲
1.创建AO对象 Activation Object（执行器上下文，作用是理解的作用域，函数产生的执行空间库） 
2.找形参和变量声明，将变量和形参名作为AO属性名，值为undefined 
3.将实参值和形参值相统一
4.在函数体里面找函数声明，值赋予函数体
*/

var a = 10;
function test(a) {
  console.log(a); //function a()
  function a() {}
  a = 100;
  console.log(a); //100
}
a = 1000;
test();
console.log(a); //1000
